package org.ala.tiktools.tools.queue;

/**
 *	自带迭代器的队列
 *
 *	@author ala
 *	@date 2025年4月26日
 */
public interface IQueue<E> {
	/**
	 * 	
	 */
	boolean isEmpty();
	/**
	 * 
	 */
	int size();
	
	
	/**
	 * 
	 */
	boolean addFirst(E e);
	/**
	 * 
	 */
	E removeFirst();
	/**
	 * 
	 */
	E first();
	
	
	/**
	 * 
	 */
	boolean addLast(E e);
	/**
	 * 
	 */
	E removeLast();
	/**
	 * 
	 */
	E last();
	
	
	/**
	 * 	清空
	 */
	void clear();
	
	
	/**
	 * 	从头开始迭代器，指针在第一个位置
	 */
	IQueueIterator<E> firstIterator();
	/**
	 * 	从尾开始迭代器，指针在末尾位置
	 */
	IQueueIterator<E> lastIterator();
}
